<!--
 * @Description: 事件委托
 * @Author: rendc
 * @Date: 2025-11-05 09:23:05
 * @LastEditors: rendc
 * @LastEditTime: 2025-11-05 10:11:58
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件委托</title>
  <style>
    /* 后代选择器 */
    /* #app div{} */
    /* 子代选择器 */
    #app>div{
      /* 光标变小手 */
      cursor: pointer;
    }
  </style>
</head>

<body>
  <div id="app" onclick="appClick(event)">
    <div id="div1">div1-sayHello</div>
    <div id="div2">div2-sayHi</div>
    <div id="div3">div3-sayByeBye</div>
  </div>
</body>
<script>
  // 给 app 添加事件处理程序 
  function appClick(event){
    // console.log('app被点击');
    // 通过事件对象获取事件源
    // console.log('🤡 CC - appClick - event.target:', event.target);
    // 获取事件源的id
    var id = event.target.id;
    // console.log('🤡 CC - appClick - id:', id);
    var text;
    // 通过id判断要执行的事件
    switch (id) {
      // 如果是 div1 被点击 log hello
      case "div1":
        text = "hello";
        break;
      // 如果是 div2 被点击 log hi
      case "div2":
        text = "hi";
        break;
      // 如果是 div3 被点击 log bye bye
      case "div3":
        text = "bye bye";
        break;
    }    
    console.log(text); // undefined
  }
</script>
</html>